
package com.crowdfunding.circle.analyze.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.crowdfunding.circle.analyze.entity.AnalyzeItemVO;
import com.crowdfunding.circle.common.dao.BaseDao;

/**
 * 拆解项详情Dao实现类
 *
 * @author 朱国军
 * @version 2016年07月03日 朱国军
 */
@Repository("analyzeItemDao")
public class AnalyzeItemDao extends BaseDao<AnalyzeItemVO> {

    /**
     * 新增，注：返回的添加的条数，获取主键用entity.getId();
     *
     * @param entity 要增加的拆解项详情对象
     * @return 返回新增的条数
     */
    public Integer insert(AnalyzeItemVO entity) {
        return this.getSqlSession().insert("insertAnalyzeItem", entity);
    }
    
    /**
     * 根据拆解ID查询拆解详情列表
     *
     * @param projectAnalyzeId 拆解ID
     * @return 拆解项详情列表
     */
    public List<AnalyzeItemVO> queryList(String projectAnalyzeId, String buyUser) {
        Map<String, Object> param = new HashMap<String, Object>();

        param.put("projectAnalyzeId", projectAnalyzeId);
        param.put("buyUser", buyUser);
        
        return this.getSqlSession().selectList("selectAnalyzeItemList", param);
    }
    
    /**
     * 根据拆解ID删除拆解项详情
     *
     * @param projectAnalyzeId 拆解ID
     */
    public Integer delete(String projectAnalyzeId) {
        return this.getSqlSession().delete("deleteAnalyzeItemByParentId", projectAnalyzeId);
    }
    
    /**
     * 根据项目类型ID和拆解ID查询拆解项（无拆解ID用于新增）
     *
     * @param projectTypeId
     * @return
     */
    public List<AnalyzeItemVO> queryListByTypeId(String projectTypeId, String analyzeId) {
        Map<String, Object> param = new HashMap<String, Object>();
        param.put("projectTypeId", projectTypeId);
        param.put("analyzeId", analyzeId);
        return this.getSqlSession().selectList("queryListByAnalyzeAndTypeId", param);
    }
}
